/**************************************************************************************************
**                                                                                               **
**  文件名称:  osl_msg_reg.h                                                                     **
**  版权所有:  CopyRight @ Xiamen Yaxon NetWork CO.LTD. 2017                                     **
**  文件描述:  系统消息注册模块                                                                  **
**  ===========================================================================================  **
**  创建信息:  | 2017-3-23 | LEON | 创建本模块                                                   **
**  ===========================================================================================  **
**  修改信息:  单击此处添加....                                                                  **
**************************************************************************************************/
#ifndef OSL_MSG_REG_H
#define OSL_MSG_REG_H

/*************************************************************************************************/
/*                           系统消息管理结构体                                                  */
/*************************************************************************************************/
typedef struct {
    INT16U     msgid;                                                          /* 统一的消息编号 */
    void     (*proc)(INT16U msgid, INT32U lpara, INT32U hpara);                /* 消息处理函数 */
} SYSMSG_TBL_T;

typedef void (* MSG_HDL_T)(INT16U, INT32U, INT32U);

/*************************************************************************************************/
/*                           定义统一编号的消息ID                                                */
/*************************************************************************************************/
#ifdef SYSMSG_REG
#undef SYSMSG_REG
#endif

#define SYSMSG_REG(_MSG_ID_, _PROC_)             _MSG_ID_,

typedef enum {
    #include "osl_msg_reg.def"
    SYSMSG_ID_MAX
} SYSMSG_ID_E;

INT8U OSL_GetSysMsgMaxID(void);
MSG_HDL_T OSL_GetSysMsgHdl(SYSMSG_ID_E msgid);

#endif


